Explorative Datenanalyse von Geodaten in R

Was kann man aus 220 Jollen-Meilen auf der Alster lernen?
(Oder: Was macht ein segelnder Data Scientist eigentlich im Herbst?)

Sandro Raabe

01. November 2020

Management Summary

Dies ist eine Fallstudie zur explorativen Datenanalyse auf selbst gesammelten GPS-Daten. Anhand einiger Datenmassage-Pakete (wie XML oder tidyverse) sowie Visualisierungen (ggplot2, highcharter, leaflet) können wir Zusammenhänge erkunden, die jedoch nicht weitergehend durch Hypothesentests untersucht werden.

Einleitung

Im Frühjahr 2020 bin ich zur Ostsee Segler Gemeinschaft e.V. gestoßen, ein Segelverein mit ca. 20 Booten und etwa 200 Mitgliedern an der Südwest-Seite der Alster. In diesem Sommer habe ich diese ausgiebig genutzt und meine Segelfertigkeiten aufgebaut. Einige dieser Törns habe ich per GPS aufgezeichnet und mit verschiedenen Visualisierungswerkzeugen untersucht. Einige Erkenntnisse:

  • Mittwochs geh ich ungern segeln.
  • Donnerstags ist Alster-Erkundungstag.
  • Mit den Möwen bleibt man anscheinend lieber nahe beim OSG-Steg.
  • Mit Conger und Kielzugvogel kommt man dagegen überall hin.
  • Conger sind die Brot-und-Butter-Boote.
  • Corona verhilft zu Einhandsegler-Skills.
  • Regatta-GPS-Tracks sehen aus wie Wollknäuel.
  • Die Mitte der Alster ist (wie zu erwarten) der Segel-Hotspot.

Datenüberblick

Da ich (natürlich) nicht alle Sessions aufgezeichnet habe, folgt hier ein Überblick über die in dieser Analyse verwendeten Daten:

  • Zeitraum: Sonntag, 17.05.2020 bis Sonntag, 25.10.2020
  • Anzahl GPS-Punkte: 89.165
  • Anzahl aufgezeichneter Tage: 44
  • Gesamtstrecke aufgezeichnet: 226 Seemeilen, entspricht etwa 407 km
  • Anzahl gefahrener Bootstypen: 10
  • Anzahl verschiedener Segelpartner: 15
  • 44 Sessions in 23 Wochen macht im Schnitt 1.9 Sessions pro Woche, oder 1 Session alle 3.7 Tage

Zeitlicher Verlauf

Zunächst kann man ohne Aggregation die im Datensatz vorhandenen Tage darstellen.

Beobachtung: Der September war mit 14 Sessions der aktivste Segelmonat.

Wochentage

Nun kann man den Datensatz nacheinander durch die Brille der enthaltenen Variablen betrachten, beginnend mit dem Wochentag.

Häufigkeitsverteilung

Beobachtung: Mittwochs scheint mir die große Känguruhregatta das Segeln zu vermiesen, bei der vereinsinternen Dienstagsregatta scheine ich jedoch gerne dabei zu sein. Oder: Nach der Dienstagsregatta bin ich so durch, dass Mittwochs gar nichts geht?

Räumliche Verteilung

Wir benutzen das Paket Leaflet zur interaktiven Darstellung aller GPS-Tracks (per Mausrad oder Buttons kann gezoomt werden, die Legende dient zur Umschaltung der verschiedenen Wochentage):

Beobachtung: Samstags wagt man sich anscheinend nicht so weit raus, wohingegen man Donnerstags auch mal bis zum Unisteg in den Langen Zug fährt. Dienstags sind die Regatta-Dreieck-Strecken gut zu erkennen (Zoom verwenden).

Gefahrene Peilungen und Windrichtung

Zu jedem GPS-Punkt ist die momentane Peilung bekannt (die “Fahrtrichtung”). Dies können wir auszählen und als Histogramm (Häufigkeitsdiagramm) wie eine Kompassrose darstellen. Dazu plotten wir die Windrichtung.

Der Kurs um 15° (Nord-Nordost) sowie 165° (Süd-Südost) scheint bei mir sehr beliebt zu sein. Schaut man sich die geografische Form der Alster an, ist dies unmittelbar einsichtig: Als langgestrecktes Nord-Süd-Revier fährt man eben mehr “hoch und runter” statt “rechts und links”. Weiterhin sieht man die für unsere geografische Lage vorherrschenden Windrichtungen: Südwest und Nordwest.

Beobachtung: Der übliche Start-Weg vom OSG-Steg geht nach Nord-Nordost. Außerdem weht hier oft Südwest bzw. Nordwest-Wind, sodass genau diese Fahrtrichtungen selten sein sollten.

Bootstypen

Häufigkeitsverteilung

Mit 14 Sessions war Conger mein beliebtestes Boot. Dies lag zum einen daran, dass es ein sehr anfängerfreundliches Boot ist (ich habe meinen Segelschein erst Ende 2019 abgelegt und habe davor noch nie ein Segelboot betreten), der andere Grund findet sich in der Analyse der Segelpartner.

Beobachtung: Auf Conger ist gut Segeln lernen.

Räumliche Verteilung

Beobachtung: Mit Conger und Kielzugvogel kommt man überall hin, mit der Möwe bleibt man lieber nahe beim OSG-Steg.

Welches Boot war das schnellste?

Interessant ist natürlich die Frage, mit welchem Boot man wie oft welche Geschwindigkeit (gemessen in Knoten) erreicht hat.

Beobachtung: Interessanterweise sind die beiden Gewichts-Extreme auch die schnellsten: Die Gleitjolle 470er und das Kielboot C55. Die J70 ist das Bundesliga-Regatta-Boot und sollte schneller sein, aber an dem einen Tag war wohl nicht viel Wind :-) Nächste Saison lohnt sich wohl ein Blick zur Rosie (C55)!

Segelpartner

Häufigkeitsverteilung

Mit 11 Sessions war ich allein am öftesten draußen. Dies lag vor allem an den Corona-bedingten Kontaktbeschränkungen im Mai und Juni 2020 - so musste ich gezwungenermaßen das Einhandsegeln erlernen.

Räumliche Verteilung der Segelpartner

Hierfür verwenden wir eine statische Darstellung der GPS-Strecken:

Beobachtung: Deutlich zu sehen sind die Regattapartner Christoph, Bernd und Jochem mit ihren Wollknäuel-Strecken.

Lieblings-Regionen auf der Alster

Wir betrachten die zweidimensionale Dichtefunktion der gefahrenen Strecken. Auf deutsch: Man kann die Alster in kleine Quadrate einteilen und zählen, wie oft jedes Quadrat durchfahren wurde. Die Quadrate färbe ich entsprechend der Häufigkeit ihres Durchfahrens ein - häufige durchfahrene Flächen rot, selten durchfahrene grün. So wie eine Corona-Hotspot-Karte eben.

Beobachtung: Die roten Hotspots könnten die Dienstagsregatta-Runden sein, der Vereinssteg unten links ist ebenfalls deutlich zu sehen.

Ausblick

Dies ist nur eine kleine, visualisierungsgetriebene explorative Analyse der Saison 2020, überwiegend univariat und ohne Überprüfung der aufgestellten Hypothesen. Aus dieser ergeben sich untersuchenswerte Fragen:

  • Kann ich in meinen Daten den Zusammenhang zwischen Bootslänge und Geschwindigkeit sehen?
  • Gibt es einen Zusammenhang zwischen Windgeschwindigkeiten und Bootstypen? Präferiere ich bestimmte Boote bei bestimmten Windverhältnissen?
  • Außer den 226 Seemeilen auf der Alster bin ich im Jahr 2020 noch 280 Seemeilen auf der Ostsee unterwegs gewesen - diese sind hier außen vor, wären allerdings eine interessante eigene Analyse wert.

Diese Fragen könnte man mit Hypothesentests oder anderen Machine Learning-Methoden untersuchen, was hier zunächst zu weit führen würde. Die Computerchips im Keller glühen jedoch schon und 2021 ist auch noch ein Jahr :-)

Credits

Danke OSG für die super Gemeinschaft, die fetzigen Boote und die spaßigen Angebote!

Technisches

Die Datensammlung erfolgt mit den Apps Komoot und Waterspeed, diese Analyse wurde mit R 4.0 und folgenden nützlichen Helfern erstellt:

  • Data Input:
    • readr
    • readxl
  • Data Wrangling:
    • dplyr
    • purrr
    • tidyr
    • lubridate
    • glue
  • Grafik:
    • highcharter
    • ggplot2
    • randomcoloR
    • yarrr
  • Geoanalyse:
  • Output:
    • rmarkdown
    • knitr
    • prettydoc

Der Code für alle Berechnungen und Visualisierungen kann in meinem Github Repository heruntergeladen werden, diese Seite ist unter https://shosaco.github.io/segel_analysen erreichbar.